Site UpdatesLink to section
July 2025Link to section
July 6th, 2025Link to section
🚀 Major Site Upgrade - From Gatsby to Astro!
We’re excited to announce a complete rebuild of HSKFlashCards with significant improvements:
New Features:
- ⚡ Lightning-fast performance - Migrated from Gatsby to Astro for better loading speeds
- 🎨 Modern design refresh - Clean, responsive interface optimized for all devices
- 🌓 Dark/Light themes - Toggle between color schemes for comfortable studying day or night
- 📱 Enhanced mobile experience - Improved touch navigation and mobile-optimized layouts
- 🔢 Direct card navigation - Jump to any card by typing its number
- đź“„ New vocabulary pages - Browse vocabulary in paginated lists (e.g., HSK Level 1 Vocabulary)
Improvements:
- Faster page transitions
- More responsive keyboard shortcuts
- Cleaner vocabulary data (fixed formatting issues)
- Better cross-deck navigation
- Improved accessibility features
Technical Updates:
- Built with Astro 5.x for optimal performance
- TypeScript throughout for better reliability
- Modern React components
- Optimized data loading with content collections
All your favorite features are still here, now faster and better than ever. Happy studying! 🎓
August 2020Link to section
August 23rd, 2020Link to section
- New icon, white background and rounded corners
- Website loading performance improved
Navigation updated: The blue menu at the top changes based on the page:
- Series: Shows name of series (e.g. HSK, IC2) and back button
- Flashcards: Show pager, series / deck name / card number and card count
Flashcards:
- Skip to front/back of deck
- Skip between series (when on first/last card and series exist)
Tech diary:
- Site moved to gatsby
- Fully hosted on CloudFront as a static website
- Deployment automated
February 2020Link to section
February 16th, 2020Link to section
- Add robots.txt / sitemap
February 9th, 2020Link to section
- Image compression via webpack
- Use font awesome 5 via svg
- Support injected fa tags via reStructureText in django-docutils
- Caching for graphql via query/variable hash
February 8th, 2020Link to section
- Break components / routes up
- Font awesome 5
- Accessibility tweaks (e.g. doctype, alt tags in images)
- Browse: Debounce input field to fix lag
February 3rd, 2020Link to section
- Responsive UX fixes
February 2nd, 2020Link to section
- Rewritten in React + Relay (graphql) + React-Navi
- Pages autoload in background
- Removed usage of heavy django template logic and based (mostly)
February 1st, 2020Link to section
- Update Django to 3.x
December 2019Link to section
December 29th, 2019Link to section
-
Move packaging pipenv -) poetry
-
Remove based (no more entangled monolith tying this thing down)
-
Internal renames, in preparation for new website:
-
Renamed “Deck” to “Series”
e.g. HSK is a Series
-
Renamed “Collection” to “Deck”
e.g. HSK Part 1 is a Deck inside the HSK Series
-
December 28th, 2019Link to section
Based:
- Decouple into python package
- Port over ux from based -) this website
December 27th, 2019Link to section
Based:
-
Open source reStructuredText parts into
tony/django-docutils
-
Remove gfx, taxonomy, user parts
These were tangled ORM parts / constrained by templates
December 7th, 2019Link to section
Based:
- Update npm packages, including raw-loader
- Minor python package updates
November 2019Link to section
November 29th, 2019Link to section
Based:
- npm package updates
November 28th, 2019Link to section
Based:
- Remove TOML lexer, pygments includes already
- Fix regular expression issue effecting code snippets
November 17th, 2019Link to section
Based / Internal:
- flake8 fixes via autoflake, black, isort
- python 3.x updates via pyupgrade
October 2019Link to section
October 22nd, 2019Link to section
Based / Internal:
- Move webpack configs to typescript
- Update npm packages for bulma, etc.
- Webpack: Use chunk splitting for django-webpack-loader
- Static files: Serve from cloudfront
October 21st, 2019Link to section
Internal updates:
- Update webpack, node-sass, update to node 12.x
- Update django and django-related packages
Dictionary:
- Fix bug displaying dictionary with django-filters
August 2018Link to section
August 25th, 2018Link to section
Internal updates:
- Run python code through black
- Run JS code through prettier
July 2018Link to section
July 7th, 2018Link to section
Internal updates:
- Update Python dependencies
April 2018Link to section
April 28th, 2018Link to section
- Update from bulma 0.6.2 to 0.7.1
April 8th, 2018Link to section
- Update from webpack 3.x to webpack 4.x
March 2018Link to section
March 18th, 2018Link to section
- Update dependencies
March 6th, 2018Link to section
- Update Django (security release)
February 2018Link to section
February 19th, 2018Link to section
- Update packages
January 2018Link to section
January 15th, 2018Link to section
- Upgrade bulma to 0.6.2
- Remove Roboto webfont, rely fully on system fonts
December 2017Link to section
December 8th, 2017Link to section
- Upgrade to Django 2.0
November 2017Link to section
November 28th, 2017Link to section
- Added progress bar at top of page when loading new content
- Restructure template system to port PJAX into based
November 15th, 2017Link to section
- Fix links to PlecoDict 2.0 files which were broken for some decks
November 7th, 2017Link to section
- Internal updates to webpack configuration to re-use common build information
November 3rd, 2017Link to section
- Update styling of headers and text
November 2nd, 2017Link to section
- Fix search
October 2017Link to section
October 30th, 2017Link to section
- Improve resilience of 404 URL’s
- Fix issue where pjax would bind to downloads
October 29th, 2017Link to section
- Move static content pages to reStructuredText
October 28th, 2017Link to section
-
Massive refactor of template system and pjax.
This add pjax support (fast page transitions) to the CHANGES pages
Fix inconsistencies when flipping between site pages and flashcards
-
Internally refactor search and directory into its own application
October 27th, 2017Link to section
- Get scrolling navbar working on updates page
- Port old updates from the about page over
October 26th, 2017Link to section
- Start noting updates
August 2017Link to section
August 30th, 2017Link to section
- Performance: Static files are now served through S3
- Look at feel: Switched web framework from Bootstrap to Bulma
- More internal code cleanup to make maintenance easier(/li)
April 2017Link to section
April 22nd, 2017Link to section
- Breadcrumb navigation shows full name of card set instead of acronym.
- Breadcrumb navigation shows the total lessons/cards.
March 2017Link to section
March 13th, 2017Link to section
- Improvements for browsing flashcards on mobile devices.
March 3rd, 2017Link to section
- You can now use a search bar to find chinese characters by english definition, simplified, traditional and pinyin. The search bar on the top right can initiate a search from anywhere on the website.
March 2nd, 2017Link to section
You can now browse chinese character by pinyin using the english alphabet. It will search through all possible tones / diacratics for you. Use the “Pinyin” field. So search “wo” can match any tone of wo.
January 2017Link to section
January 29th, 2017Link to section
- Default font is now Roboto (was using Verdana earlier).
January 28th, 2017Link to section
- Upgraded to Bootstrap 4
- More internal cleanup
January 27th, 2017Link to section
The Cleanup
- HSKFlashcards has been updated internally to faciliate development of new features for exploring ä¸ć–‡!
- Bootstrap has been updated from 2 to 3. Django has been updated from 1.4 to 1.10. The codebase has been cleaned up significantly and work will continue over the next few days.
- In addition, social networking will be reintegrated into the site for Twitter and Facebook
April - October 2012Link to section
The New HSKFlashcards
Over the past 5 months I have spent weekends and late nights trying to fill my own technical debt. Alchemy is when we turn matter into something useful. What is matter lies in the perceiver - a vacuum or void is space with time is matter to the hermetic hacker. The best material to repay technical debt is inherit invested effort from a prior generation. Nature’s grace gave me the fortune of meeting Jacob, thanks is owed to him for his time making the original site a reality. Not only to him, my teachers, the nobel people who gave us permission to use their content, the sages and long-forgotten who undertook preserving Chinese culture and the open source community.
Our deeds, discipline and actions are not coincidental, we’re a model for bringing order out of chaos, taxonomy out of mess, hope in a hard world, light to darkness, truth to lies, depth to shallowness, so as to create fixed stars in a world where people roam so lost. We do what we do not out of pride but expectation for what we leave after us. I hope this method and its fruits will be passed down to the generations to nourish.