We could have gone for Bootstrap but because we want the CSS bundle size to be as small as possible, we
opt for creating a CSS file specifically for noodles.dev. Minimized Bootstrap file is 19kB while our
.css file is almost half the size.
For interactivity on frontend we opted to use ReactJS mini-apps. This
allowed to load the main ReactJS
bundle only once while the individual mini-apps each have less than 30kB.
All static resources are served through a CDN service (Cloudflare) thus
the initial resources loading
is considerably fast.
Whenever possible we are using Django inbuilt caching with Redis backend
for serving content as fast as
Processing full-text and aggregation queries would be very slow on SQL Databases, especially when
searching through large amounts of data. PostgreSQL supports trigram indexing and is quite fast but is
as powerful as Elasticsearch which is built specifically for fastest full
text search. More on implementing
Elasticsearch with PostgreSQL on the full text search section.
- Fulltext search in up to 0.5 million records in under 0.5s
- 0.7s load time for homepage
- 0.7s load time for searchpage
- 99/100 score on Google PageSpeed
- 1 .css file of 10.8 kB in the top 10% of css bundle sizes < 14 kB
- 3 .js files totaling 72.1 kB in the top 10% js bundle sizes < 108