I just wrapped up my first sprint as a frontend developer working on Piksta, an exciting and modern photo-sharing app that combines sleek design with powerful features.
π οΈ The Team & Tools
Our team includes:
- π¨βπ» 5 Frontend Developers
- π§βπ» 2 Backend Developers
- π©βπΌ 1 Project Manager
We use Jira to manage our sprints and tasks. This helps us stay organized, track progress, and communicate better as a team.
π CI/CD (Docker, Jenkins)
We use Docker to containerize the application, which helps keep the environment consistent across development and production. Jenkins automates our CI/CD pipeline, so every time we push code, the app gets tested, built, and deployed automatically.
βοΈ Deployment (Kubernetes)
Our app is deployed with Kubernetes. It helps us manage scaling, updates, and reliability in a production environment.
π― The Goal
Our goal in Sprint 1 was to set up reusable components. My task was to create a custom language selector dropdown that looks clean, is easy to use, and works well on all screen sizes. It also had to support flags next to each language. Additionally, create a header and integrate a select box into the header.
π§ What I Learned
1. Radix UI (React Primitives)
For the first time, I worked with @radix-ui, a low-level UI component library. It gives you accessibility and keyboard support out of the box, and you control how it looks.
Things I learned:
- Using
<RadixSelect.Root>
,<RadixSelect.Trigger>
,<RadixSelect.Content>
, and<RadixSelect.Item>
. - Handling
onValueChange
,onOpenChange
, and state likeopen
. - How
<RadixSelect.Portal>
helps render dropdowns outside the normal DOM tree (great for z-index issues!).
β‘οΈ Why I liked it: It gives you full control over styles but handles accessibility for you. π―
2. SCSS Modules
I used Select.module.scss
to style the dropdown. SCSS modules helped me:
- Keep styles scoped to the component.
- Use nesting and variables (
--light-100
,--dark-300
) for a clean and reusable design system. - Easily create variants like
.small
,.disabled
, or[data-state="open"]
.
3. Storybook
We added stories to Storybook to test our component in isolation. I created versions with:
- Flags
- Initial value
- Disabled state
- Small size
Thanks for reading! π
Follow me for more updates on Piksta and my frontend dev journey!
Top comments (0)