Unless you're certain about the UI elements, doing a hard design may be a bad move. I personally get better mileage from building the core architecture/functionality first, and working on the rest, ideally with public feedback on both after a certain stage. I've made significant changes in usability in the past as a result of this. If you end up hard-coding stuff before it gets scrutinized in the forge of actual use, you'll have a harder time making changes down the road.
YMMV. It helps if you use a framework or something else that can get you started. Just remember that customizing a framework isn't your core competency.