Skip to content
Ajit Blogs A working notebook India
AJITBLOGS

Field notes on software, cloud, and the work of shipping.

Build journal / week 3

Build journal: laying out a community home page

A lazy loaded home feature, a sidebar split into small parts, and the first article store built around a public API.

The header from the previous week needed a page beneath it. This week was about the home layout: a sidebar, a main article column, and a smaller information area. The work looked like markup, but most of the decisions were about how the feature should be divided so that it could grow without becoming one enormous component.

A home feature with a reason to exist

The home page was placed in its own lazy loaded module. That decision separated the first screen from the rest of the application and gave the feature a clear boundary. A visitor may land on an article before ever seeing the home page, so treating the home experience as a separate concern is reasonable. The module is not a decoration. It is a way to keep the initial bundle focused on what the current route needs.

The sidebar was divided into primary navigation, social links, tags, and a small promotional area. This is a useful pattern for any dense interface: name the regions first, then let each region own its content. The alternative is a single component with a long template and an even longer stylesheet, which becomes difficult to change without unintended effects.

API service plus store

The article feed used the public API. The first connection was an article service that made the request, followed by a component store that held the response and exposed it to the view. This separation makes the data flow explicit. The component asks the store for the current state, and the store decides when a request is needed. When the API changes, the service is the place to adapt.

The template used the push pipe for the article stream. The appeal was practical: the template receives the current value without an extra asynchronous subscription wrapper, and the component can keep the state handling in the store. The tradeoff is another library concept. That is acceptable when the concept is used consistently across the feature rather than sprinkled in one template.

What the API cannot tell you

The open API gave the project enough data to build a feed, but it also exposed limits. Some experiences would require a signed in user, and the application was not ready for that path. The plan was to build the public surfaces first and add a login layer later. That is a sound sequence for a learning project because it keeps the first version honest about what it can do.

Notebook note: divide a dense screen by responsibility before dividing it by visual style. The styles can follow the boundaries.

Working with contributors

A contributor offered to build a feature. The project had a small amount of time each week, so the rule became simple: discuss the feature in an issue, agree on the scope, and let the contributor own the implementation and the write up. That keeps the collaboration legible and turns each contribution into a shared lesson. The next week would add the article feed in earnest.

Reference shelf

Selected external references for going deeper.

Type a title, subject, or phrase. Results appear as you type.

Press Escape to close25 entries indexed